home *** CD-ROM | disk | FTP | other *** search
- 5 print"[147][160]":poke53280,0:poke53281,0:poke646,1
- 10 poke52,128:poke56,128:clr:goto1260
- 20 printd$b$;:printd$dd$b$;:printd$dd$dd$b$;:printd$dd$dd$dd$b$;d$;:return
- 30 gosub50:goto70
- 40 pokep1,f1:pokeg1,w1:pokeg1,w1-w:return
- 50 pokep1,f2:pokeg1,w3:pokeg1,w3-w:return
- 60 pokep1,f3:pokeg1,w1:pokeg1,w1-w:return
- 70 gosub90:ifjf=oandjd=othen70
- 80 return
- 90 jd=o:jf=t1-(peek(t2)andt1):ifjf=othen110
- 100 jd=jfandt5:jf=jfandt6:return
- 110 geta$:ifa$=""thenreturn
- 120 jf=m:forjd=wto5:ifa$=mid$(o$,jd,w)thenjf=bi(jd-w)
- 130 next:jf=jf-(jf<o):goto100
- 140 pokezy+ii*sn,oy+8*r:pokezx+ii*sn,fnl(ox+t6*c):j=bi(sn)
- 150 poket9,peek(t9)orj:iffnh(ox+t6*c)>othenpoket4,peek(t4)orj:return
- 160 j=t7-j:poket4,peek(t4)andj:return
- 170 ifa=othena=w:na=w:return
- 180 na=o:fori=atowstepm:ifa(i,o)<othenna=i
- 190 next:ifna>othenreturn
- 200 ifa<199thena=a+w:na=a:return
- 210 gosub20:print" too many armies-hit f7/fb";:gosub40:gosub70
- 220 return
- 230 print"[147]";:forr=oto18:printleft$(d$,r+3);
- 240 forc=oto18:k=m(r,c):ifk<3thenprintm$(k);:goto260
- 250 k=f(k-t3,o):printcl$(k);ft$;
- 260 next:next:ifa<wthen310
- 270 fori=wtoa:ifa(i,o)<othen300
- 280 r=a(i,ii):c=a(i,t3):k=m(r,c):ifk=work>iithen300
- 290 k=a(i,o):printleft$(d$,r+t3);left$(r$,ii*c+ii);cl$(k);ar$;
- 300 next
- 310 return
- 320 gosub90:ifjd=othen380
- 330 ifjdandwthenr=(r-w)-(r<w):goto370
- 340 ifjdandiithenr=(r+w)+(r>17):goto370
- 350 ifjdand4thenc=(c-w)-(c<w):goto370
- 360 c=(c+w)+(c>17)
- 370 gosub140
- 380 return
- 390 k=o:aa(o,o)=m:aa(o,w)=o:ifm(r,c)<t3then410
- 400 j=m(r,c)-t3:aa(o,o)=j:aa(o,w)=f(j,w)
- 410 ifa<wthen470
- 420 forj=wtoa:if(a(j,o)=m)ora(j,o)<>ow(r,c)then460
- 430 if(r<>a(j,ii))or(c<>a(j,t3))then460
- 440 ifa(j,4)<othenaa(o,o)=j:aa(o,w)=a(j,w):goto460
- 450 k=k+w+(k>9):aa(k,o)=j:aa(k,w)=a(j,w)
- 460 next
- 470 ma=aa(o,w):return
- 480 r=10:c=10:sn=o:gosub140:printbb$h$" "pn$(pp);" hit fb/f7, week"wk;:gosub30
- 490 ifpeek(t0)and6thengosub20:poket9,o:return
- 500 printbb$h$" "pn$(pp)" looking (como to end)";:gosub770
- 510 gosub320:ifjd=oandjf=oand((peek(t0)and6)=o)then510
- 520 ifpeek(t0)and6thengosub20:poket9,o:return
- 530 ifjd<>othen500
- 540 ifma=othen570
- 550 gosub1210:ifms=othen490
- 560 gosub1020:goto490
- 570 printbb$h$" no troops available-hit fb/f7";:gosub40:gosub70:goto490
- 580 qa=o:ua=m:fori=otonf-w:iff(i,w)>qathenqa=f(i,w):ua=i
- 590 next:ud=m:qd=o:ifa<wthen620
- 600 fori=wtoa:ifa(i,o)=mthen620
- 610 ifa(i,w)>qdthenud=i:qd=a(i,w)
- 620 next
- 630 ifua=morqd=>qathen670
- 640 iff(ua,o)<>othen670
- 650 gosub170:a(na,o)=o:a(na,w)=int(.34*qa):f(ua,w)=f(ua,w)-a(na,w)
- 660 a(na,ii)=f(ua,ii):a(na,t3)=f(ua,t3):a(na,4)=m
- 670 ifa=othenreturn
- 680 fori=wtoa:ifa(i,o)<>oora(i,4)<>mthen760
- 690 ua=a(i,ii):ud=a(i,t3):r=m:c=o
- 700 forj=otonf-w:ifr>morf(j,o)>oorrnd(w)>.6then730
- 710 ifabs(f(j,ii)-ua)>t3then730
- 720 ifabs(f(j,t3)-ud)<=t3thenr=f(j,ii):c=f(j,t3)
- 730 next:ifr>mthen750
- 740 r=int(19*rnd(2)):c=int(19*rnd(w)):if(r=ua)and(c=ud)then740
- 750 a(i,4)=r:a(i,fi)=c
- 760 next:return
- 770 gosub20:ma=o:l=m(r,c):ifl<t3thenonl+wgoto830,890,940
- 780 ifow(r,c)<>ppthenk=ow(r,c):printpn$(ow(r,c))"'s castle";:goto950
- 790 printcl$(pp);" your castle";:gosub390
- 800 printd$dd$"troops:";ma;" levy:"f(l-t3,4);:ifma>othenprints$;
- 810 ifk>othengosub960
- 820 goto950
- 830 ifow(r,c)=mthenprint"[158]grass";:goto950
- 840 ifow(r,c)<>ppthenk=ow(r,c):printpn$(k)"'s troops";:goto950
- 850 printcl$(pp);" your troops";:gosub390:printd$dd$"idle troops:";ma;
- 860 ifma>othenprints$;
- 870 ifk>othengosub960
- 880 goto950
- 890 ifow(r,c)<>ppthenprint"[149]woods";:goto950
- 900 print"[149] your troops, hidden";:gosub390:printd$dd$"idle troops:";ma;
- 910 ifma>othenprints$;
- 920 ifk>othengosub960
- 930 goto950
- 940 print"[151]rocks";
- 950 return
- 960 printd$dd$dd$;:ifk<4thenfori=wtok:gosub1000:next:return
- 970 fori=wtot3:gosub1000:next:printd$dd$dd$dd$;
- 980 ifk<7thenfori=4tok:gosub1000:next:return
- 990 fori=4to6:gosub1000:next:return
- 1000 printright$(" "+str$(aa(i,o)),fi)+ar$+mid$(str$(aa(i,w))+" ",ii,4);
- 1010 return
- 1020 gosub170:ifna=othenreturn
- 1030 a(na,o)=pp:a(na,w)=ms:a(na,ii)=rs:a(na,t3)=cs:a(na,4)=rd:a(na,fi)=cd
- 1040 gosub20:print"army "na" of"ms" sent";
- 1050 printbb$h$" hit fb/f7 to continue";:gosub30
- 1060 gosub20:printbb$;:ifm(rs,cs)>iithen1090
- 1070 nk=aa(o,o):a(nk,w)=a(nk,w)-ms:ifa(nk,w)<wthena(nk,o)=m
- 1080 return
- 1090 nk=aa(o,o):f(nk,w)=f(nk,w)-ms:iff(nk,w)<othenf(nk,w)=o
- 1100 return
- 1110 printbb$h$"js/crsr size, 0 cancel, fb/f7 end";:gosub20:print"troops 1-";ma;
- 1120 ms=o:goto1200
- 1130 gosub90:if(jf=o)and(jd=o)then1130
- 1140 ifjf>othenreturn
- 1150 ifjdandwthenms=ms+10:goto1190
- 1160 ifjdandiithenms=ms-10:goto1190
- 1170 ifjdand4thenms=ms-w:goto1190
- 1180 ifjdand8thenms=ms+w
- 1190 ms=-ms*(ms=>o):ifms>mathenms=ma
- 1200 printd$dd$b$d$dd$" sending"ms;:goto1130
- 1210 gosub1110:ifms=othenreturn
- 1220 rs=r:cs=c:sn=w:gosub140:gosub20
- 1230 printbb$h$"position x with js/crsr, then f7/fb";
- 1240 gosub320:ifjf=othen1240
- 1250 rd=r:cd=c:sn=o:poket9,peek(t9)andw:c=cs:r=rs:gosub140:return
- 1260 gosub2560:gosub2190
- 1270 fori=otonp:dp(i)=o:next
- 1280 ifnp>wthen1300
- 1290 pp=w:gosub480:gosub580:gosub1390:goto1370
- 1300 fori=wtonp:pp(i)=i:next:fori=wtonp:forj=wtonp-w:ifrnd(o)>.5then1320
- 1310 qa=pp(j):pp(j)=pp(j+w):pp(j+w)=qa
- 1320 next:next:pp(o)=w
- 1330 pp=pp(pp(o)):ifdp(pp)>othen1350
- 1340 gosub480
- 1350 pp(o)=pp(o)+1:ifpp(o)<=npthen1330
- 1360 gosub580:gosub1390
- 1370 gosub2730:ifnp-dp(o)>othen1280
- 1380 gosub2990:stop
- 1390 printh$b$h$" hit fb/f7 to see armies march";:gosub60:gosub70
- 1400 fortq=wtofi:gosub1410:next:wk=wk+w:return
- 1410 ifa=0thenreturn
- 1420 ns=int(w+a*rnd(-ti)):na=ns
- 1430 printbb$h$" [144]moving armies...";:na=w-(na<a)*na
- 1440 ifa(na,o)<oora(na,4)=mthen1960
- 1450 rs=a(na,ii):cs=a(na,t3):rd=a(na,4):cd=a(na,fi):pp=a(na,o)
- 1460 if(rs=rd)or(cs=cd)thenrd=rs+sgn(rd-rs):cd=cs+sgn(cd-cs):goto1490
- 1470 ifrnd(2)<.5thenrd=rs+sgn(rd-rs):cd=cs:goto1490
- 1480 rd=rs:cd=cs+sgn(cd-cs)
- 1490 ifm(rd,cd)=2thengosub2050:goto1910
- 1500 a(na,ii)=m:ifm(rs,cs)>wthen1530
- 1510 r=rs:c=cs:gosub390:ifma>oork>othen1530
- 1520 ow(r,c)=m:ifm(r,c)=othenprintleft$(d$,r+t3)left$(r$,ii*c+ii);bl$;
- 1530 qa=a(na,w):ua=qa:dp=ow(rd,cd):ifdp=mordp=ppthen1890
- 1540 r=rd:c=cd:gosub390:ifma>oork>othen1600
- 1550 ifm(r,c)<2then1890
- 1560 gosub20:printpn$(pp)" takes "pn$(dp)"'s";
- 1570 printd$dd$" [144]without a fight!";
- 1580 sn=ii:gosub140:printbb$h$" hit fb/f7 to continue";:gosub60
- 1590 gosub70:printbb$;:poket9,0:gosub20:goto1890
- 1600 qd=ma:ga=.2+.35*rnd(w):ff=.6:ifk>othenfori=wtok:qd=qd+aa(i,w):next
- 1610 gd=.25+.3*rnd(2)-.1*(m(r,c)>2):ud=qd:gosub2110
- 1620 qa=int(qa-qd*gd*ff):ifqa<othenqa=o
- 1630 gosub2150:ifqa=othen1780
- 1640 qd=int(qd-qa*ga):ifqd<othenqd=o
- 1650 gosub2150:ifqd>othenff=w:goto1620
- 1660 ifk=othen1680
- 1670 fori=wtok:a(aa(i,o),o)=m:next:gosub390:goto1660
- 1680 k=aa(o,o):ifm(r,c)>2then1710
- 1690 ifma>othena(k,o)=m
- 1700 goto1720
- 1710 f(k,o)=pp:f(k,w)=o
- 1720 ow(r,c)=pp:printleft$(d$,r+t3)left$(r$,ii*c+ii);
- 1730 ifm(r,c)=wthenprintwd$;:goto1760
- 1740 ifm(r,c)>iithenprintcl$(pp)ft$;:goto1760
- 1750 printcl$(pp)ar$;
- 1760 gosub20:printpn$(pp);" is victorious!";:gosub1980:a(na,w)=qa
- 1770 gosub60:goto1890
- 1780 gosub20:printpn$(dp);" repells invaders!";:gosub40:gosub1980
- 1790 ud=ud-qd:ifud<=othen1850
- 1800 ifk=oorud<=othen1850
- 1810 fori=wtok:ifud<=othen1840
- 1820 ifaa(i,w)>udthena(aa(i,o),w)=aa(i,w)-ud:ud=o:goto1840
- 1830 a(aa(i,o),o)=m:ud=ud-aa(i,w)
- 1840 next:gosub390:goto1800
- 1850 ifud<=othen1880
- 1860 ifm(r,c)>iithenf(aa(o,o),w)=ma-ud:goto1880
- 1870 a(aa(o,o),w)=ma-ud
- 1880 a(na,o)=m:goto1960
- 1890 a(na,ii)=rd:a(na,t3)=cd:r=rd:c=cd:ow(r,c)=a(na,o):gosub2000
- 1900 ifrd<>a(na,4)orcd<>a(na,fi)then1960
- 1910 r=rd:c=cd:gosub390:ifm(r,c)>iithen1940
- 1920 ifaa(o,o)<wthena(na,4)=m:goto1960
- 1930 k=aa(o,o):a(k,w)=a(k,w)+qa:goto1950
- 1940 k=aa(o,o):f(k,w)=f(k,w)+qa
- 1950 a(na,o)=m
- 1960 ifna<>nsthen1430
- 1970 return
- 1980 poke53280,fi:printbb$h$" hit fb/f7 to continue";:gosub70
- 1990 poket9,o:printbb$;:gosub20
- 2000 printleft$(d$,r+t3)left$(r$,ii*c+ii);
- 2010 ifm(r,c)=wthenprintwd$;:goto2040
- 2020 ifm(r,c)>iithenprintcl$(ow(r,c))ft$;:goto2040
- 2030 printcl$(ow(r,c))ar$;
- 2040 return
- 2050 r=rs:rd=r:c=cs:cd=c:ifa(na,o)=othen2100
- 2060 printbb$h$"hit fb/f7 to go on";
- 2070 rd=r:cd=c:ifm(r,c)=othensn=o:gosub140
- 2080 gosub20:printpn$(a(na,o));"'s army "na;
- 2090 printd$dd$" unable to proceed";:gosub40:gosub70:poket9,o
- 2100 a(na,4)=rs:a(na,fi)=cs:gosub20:printbb$;:return
- 2110 ct=ii:sn=ii:gosub140:pp=a(na,o):dp=ow(r,c):poke53280,ii
- 2120 printleft$(d$,r+t3)left$(r$,ii*c+ii)cl$(pp)"^";:gosub20
- 2130 print" "pn$(pp)" attacks "pn$(dp);:gosub2160
- 2140 printbb$h$" hit fb/f7 to see outcome";:gosub30:printbb$;:return
- 2150 pokep2,f1:pokeg2,w2:pokeg2,w2-w
- 2160 ct=-(ct+w)*(ct<2):poke53289,ct:gp=(NULL)^6-log((NULL)^3):print"[149]";
- 2170 printd$dd$right$(" "+str$(qa),9)right$(" "+str$(qd),14);
- 2180 return
- 2190 print"[147][144]"
- 2200 a$="":input"lords (1-4)";a$:np=val(a$):ifnp<wornp>4then2200
- 2210 fori=wtonp:print"lord"i"'s name";:inputa$:pn$(i)=pn$(i)+a$:next
- 2220 a$="":print"castles (";t3*np;:input"-35)";a$
- 2230 nf=val(a$):ifnf<t3*npornf>35then2220
- 2240 print"levels: 1-no terrain":print" 2-hills, some trees"
- 2250 print" 3-hills and forests"
- 2260 a$="":input"level (1-3)";a$:gl=val(a$):ifgl<worgl>t3then2260
- 2270 gosub2970
- 2280 print"[147]placing [158]grass &";:fori=oto18:forj=oto18:m(i,j)=o:ow(i,j)=m
- 2290 next:print"&";:next:ifgl=wthen2360
- 2300 print:print"[151]rocks %";:j=6:fori=oto18:ifrnd(o)<.2then2330
- 2310 ifrnd(t3)>.2thenm(i,j)=ii
- 2320 ifrnd(w)>.2thenm(i,j+w)=ii
- 2330 j=int(j-.2+1.9*rnd(2)):ifj<4thenj=4
- 2340 ifj>14thenj=14
- 2350 print"%";:next
- 2360 ifgl=wthen2400
- 2370 print:print"[149]trees #";:fori=wto50
- 2380 r=int(19*rnd(t3)):c=int(19*rnd(w)):ifm(r,c)<>othen2380
- 2390 m(r,c)=w:print"#";:next
- 2400 ifgl<t3then2420
- 2410 forkk=wtofi:i=int(t3+12*rnd(9)):j=int(t3+12*rnd(6)):gosub2520:next
- 2420 print:print"castles []";:fori=otonf-w:kk=o:ifi<npthenkk=i+w
- 2430 r=int(19*rnd(o)):c=int(19*rnd(t3)):ifm(r,c)>wthen2430
- 2440 f(i,ii)=r:f(i,t3)=c:f(i,k)=kk:m(r,c)=i+t3:ow(r,c)=kk:print"[]";:next
- 2450 gosub230:printd$;"ok (y/n)?";:gosub50
- 2460 geta$:ifa$<>"y"anda$<>"n"then2460
- 2470 ifa$="n"then2280
- 2480 gosub20:fori=otonf-w:iff(i,o)>othen2500
- 2490 k=.09+1.3*rnd(w):f(i,4)=w+int(w/k):f(i,w)=int(t5*rnd(w)+rnd(ii)/k):goto2510
- 2500 f(i,4)=7+np:f(i,w)=int(20+nf+15*rnd(w)+ii*(abs(9-f(i,ii))+abs(9-f(i,t3))))
- 2510 next:return
- 2520 forr=i-4toi+4:forc=j-4toj+4:ifr<oorr>18orc<oorc>18then2550
- 2530 ifm(r,c)<>othen2550
- 2540 k=8-abs(i-r)-abs(j-c):ifrnd(ii)<k/10thenm(r,c)=w
- 2550 next:print"#";:next:return
- 2560 o=0:w=1:ii=2:m=-1:i=o:j=o:r=o:c=o:qa=o:jf=o:jd=o:k=o:kk=o:rr=o:t1=31:fi=5
- 2570 t2=56320:t3=3:t4=53264:t5=15:t6=16:t7=255:t8=256:t9=53269:t0=653:wk=1
- 2580 w2=129:w1=21:w3=17:p1=54273:f1=50:f2=100:f3=150:g1=54276:g2=54283
- 2590 zx=53248:zy=zx+1:o$="[145][157][136]":deffnh(k)=int(k/t8):deffnl(k)=k-t8*fnh(k)
- 2600 dimm(18,18),cl$(4),bi(7),m$(2),a(199,5),f(35,4),ow(18,18),pn$(4)
- 2610 fori=oto4:cl$(i)=mid$("[144][158][159]",i+w,w):pn$(i)=cl$(i):next:pn$(o)="[144]rebel"
- 2620 b$=" ":dd$="":bb$=" "+b$
- 2630 ft$="[]":ar$="^_":wd$="[149]##":rk$="[151]%%":bl$="[158]&&":h$="":m$(o)=bl$:m$(w)=wd$
- 2640 print"[147]"spc(11)"rebels":printspc(14)"and":printspc(14)"lords"
- 2650 m$(ii)=rk$:fori=oto7:bi(i)=ii^i:next:ox=30:oy=57:gosub2890
- 2660 fori=otoii:poke34808+i,i:poke53287+i,6:next:poke53285,6:poke53275,o
- 2670 poke53276,o:poke53277,o:poket9,o:poke53271,o:poke53280,fi:poke53281,fi
- 2680 fori=wto199:a(i,o)=m:next:a=o:d$=""
- 2690 r$="[157]":fori=54272to54300:pokei,0
- 2700 s$=d$+dd$+left$(r$,27)+"(fb/f7-send)"
- 2710 next:poke54296,143:poke54287,102:poke54292,240:poke54290,17:poke54285,246
- 2720 poke54278,250:poke54280,50:return
- 2730 fori=otonf-w:f(i,w)=f(i,w)+f(i,4):next
- 2740 gosub20:printbb$h$" hit fb/f7 to go on, ctrl to quit";
- 2750 gosub90:ifpeek(t0)and6then2780
- 2760 ifjf=othen2750
- 2770 printbb$;:return
- 2780 printbb$h$" crsr/js for player, fb/f7 to quit"d$" -1 for none, 0 for all";
- 2790 ms=m
- 2800 printd$dd$" "ms" ";:gosub90:ifjf>othen2830
- 2810 ifjd>othenms=ms+w:ifms>npthen2790
- 2820 goto2800
- 2830 ifms=mthengosub20:printbb$;:return
- 2840 ifms=othendp(o)=np:printbb$;:gosub20:return
- 2850 ifa>othenfori=wtoa:ifa(i,o)=msthena(i,o)=o
- 2860 next:fori=otonf-w:iff(i,o)=msthenf(i,o)=o
- 2870 next:forr=oto18:forc=oto18:ifow(r,c)=msthenow(r,c)=o
- 2880 next:next:gosub230:dp(ms)=w:dp(o)=dp(o)+w:goto2740
- 2890 ba=40960:sa=zx:poke56334,peek(56334)and254:pokew,peek(w)and251
- 2900 fori=oto1023:pokei+ba,peek(i+sa):next
- 2910 pokew,peek(w)or4:poke56334,peek(56334)orw
- 2920 ba=40960:readsa:ifsa<othen2940
- 2930 sa=ba+8*sa:fori=satosa+7:readj:pokei,j:next:goto2920
- 2940 ba=32768:readsa:ifsa<othen2960
- 2950 sa=ba+64*sa:fori=satosa+63:readj:pokei,j:next:goto2940
- 2960 return
- 2970 poke56578,peek(56578)ort3:poke56576,(peek(56576)and252)orw
- 2980 poke648,132:poke53272,(peek(53272)and240)or8:return
- 2990 poke56578,peek(56578)ort3:poke56576,(peek(56576)and252)ort3
- 3000 poke648,4:poke53272,(peek(53272)and240)or4:print"[147]":return
- 3010 data27,,102,102,63,60,60,60,,29,,102,102,252,60,60,60,0,30,240,128,237
- 3020 data246,246,109,255,,31,,,182,219,219,182,254,,38,,5,2,80,32,10,4,0
- 3030 data35,216,115,22,124,24,24,124,,37,34,119,239,239,126,253,239,255,-1
- 3040 data0,255,255,240,255,255,240,240,,240,240,,240,240,,240,240,,240
- 3050 data240,,240,240,,240,255,255,240,255,255,240,,,,,,,,,,,,,,,,,0
- 3060 data0,,,,,,,,,,,,,,,,,1,15,255,,3,252,,195,252,48,255,15,240,252,3,240
- 3070 data252,3,240,255,15,240,195,252,48,3,252,,15,255,,,,,,,,,,,,,,,,,,0
- 3080 data0,,,,,,,,,,,,,,,,,2,227,12,112,113,152,224,,,,248,1,240,,,,,,0
- 3090 data248,1,240,,,,113,152,224,227,12,112
- 3100 data0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-1
-